<?php
/**
 *
 * Classe UserControleur qui permet la connexion et la deconnexion d'un membre du site Capitaines ou DS
 * @author Juste Hervouin
 *
 */
class UserControleur extends Controleur {

	/**
	 *
	 * Permet de se connecter au site � l'aide d'un login et d'un mot de passe
	 *
	 */
	public function login() {
		//si des donn�es ont �t� envoy�es
		if ($this -> request -> data) {
			$data = $this -> request -> data;
			$this -> loadModel('User');
			$user = $this -> User -> find(array('login' => $data -> login, 'password' => md5($data -> mdp)));

			//si on a une correspondance alors on la connecte � son espace personnel
			if (!empty($user)) {
				$this -> Session -> write('User', $user);
				$this -> request -> data -> mdp = '';
			}
		}

		//Si la personne est bien connect�e on la redirige dans son espace personnel sinon il ne s'agit pas d'un membre du site et donc retour � l'accueil
		if ($this -> Session -> isLogged()) {
			$this -> redirect('joueur/cactusland');
		}
	}

	/**
	 * Méthode de déconnexion qui permet à un utilisateur de se déconnecter de sa session avec un message de déconnection et une redirection
	 */
	public function logout() {
		unset($_SESSION['User']);
		$this -> Session -> setFlash('Vous êtes maintenant déconnecté');
		$this -> redirect('');
	}

	public function signup() {
		//lancement du modele client
		$this -> loadModel('User');
		//init de la cl� primaire
		$this -> User -> primaryKey = 'numcpt';
		//numclient vide car autoincrementation
		$data['numcpt'] = $this -> User -> generateNewId();
		//r�cup�ration des valeurs du formulaire
		if ($this -> request -> data) {

			foreach ($this->request->data as $k => $v) {
				//on �limine les valeurs de champ de confirmation et de la case de confirmation de r�glement
				if ($k != 'mdpbis' && $k != 'accepter' && $k != 'mailclientbis') {
					$data[$k] = $v;
				}
			}

			//v�rification des r�gles de remplissage de formulaire et envoie � la base de donn�es
			if ($this -> User -> validates($this -> request -> data)) {
				//on sauve le compte avec mdp crypt� en md5
				$data['mdp'] = md5($data['mdp']);
				$this -> User -> save($data, true);
				$this -> Session -> setFlash('Vous avez bien été enregistré');
			} else {
				$this -> Session -> setFlash('Merci de corriger vos informations', 'error');
			}
		}

		//envoie des donn�es du formulaire � la vue pour afficher les valeurs dans les champs pour �viter de les remettre en cas d'erreur par exemple
		$this -> set($data['numcpt']);
	}

}
?>